class animal{
    public String name;
    public int age;

    public void eat(){
        System.out.println(name+"正在吃饭！");
    }

}

class dog extends animal{
    public void calling(){
        System.out.println(name+"正在叫！！！");
    }

    @Override
    public void eat(){
        System.out.println(name+"正在吃狗粮！！！");
    }
}

class bird extends animal{
    public String wing;
    public void fly(){
        System.out.println(name+"正在飞！");
    }

    @Override
    public void eat(){
        System.out.println(name+"正在吃鸟粮！");
    }
}

public class test_11_14_0_1 {
//    public static void main(String[] args) {
//        dog d=new dog();
//        d.name="二哈";
//        d.eat();
//        d.calling();
//
//        animal a1=d;
//
//        bird b=new bird();
//        b.name="啾啾";
//        animal a2=b;
//
//    }


//    public static void main(String[] args) {
//        animal a1=new dog();
//        a1.name="二哈";
//        a1.eat();
//        //a1.calling();  error!!! 父类中没有子类特有的，无法调用
//
//        System.out.println("-------------------------");
//        animal a2=new bird();
//        a2.name="啾啾";
//        a2.eat();
//
//    }


//    public static void func(animal a){
//
//    }
//
//    public static animal func2(){
//        return new dog();
//    }
//
//    public static void main(String[] args) {
//        dog d=new dog();
//        func(d);
//    }


//    public static void main(String[] args) {
//        animal a1=new dog();
//        a1.name="二哈";
//        a1.eat();
//        System.out.println("-------------------------");
//        animal a2=new bird();
//        a2.name="啾啾";
//        a2.eat();
//    }


//    public static int add(int a,int b){
//        return a+b;
//    }
//
//    public static int add(int a,int b,int c){
//        return a+b+c;
//    }
//
//    public static void main(String[] args) {
//        System.out.println(add(1,2));
//        System.out.println(add(1,2,3));
//    }


//    public static void function(animal a){
//        a.eat();
//    }
//
//    public static void main(String[] args) {
//        animal a1=new dog();
//        a1.name="二哈";
//        function(a1);
//
//        System.out.println("-----------------");
//        animal a2=new bird();
//        a2.name="啾啾";
//        function(a2);
//    }


//    public static void main(String[] args) {
//        animal a1=new dog();
//        //向下转型
//        dog d = (dog)a1;
//        d.name = "二哈";
//        d.calling();
//
//        System.out.println("-----------------");
//        //可以理解为：a1这个引用引用了bird对象
//        if(a1 instanceof bird){
//            bird b=(bird)a1;
//            b.fly();
//        }
//    }


}











